package com.wtb.javatool.dao;

import com.wtb.javatool.entity.Student;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StudentMapper {
    /**
     * 根据条件查询学生信息
     *
     * @param studentId 学生ID
     * @param studentName 学生姓名
     * @param studentNo 学号
     * @param college 学院
     * @param major 专业
     * @param className 班级
     * @return 符合条件的学生列表
     */
    List<Student> findStudents(
            @Param("studentId") Long studentId,
            @Param("studentName") String studentName,
            @Param("studentNo") String studentNo,
            @Param("college") String college,
            @Param("major") String major,
            @Param("className") String className,
            @Param("begin") Integer begin,
            @Param("size") Integer size
    );
    
    /**
     * 统计符合条件的学生数量
     *
     * @param studentId 学生ID
     * @param studentName 学生姓名
     * @param studentNo 学号
     * @param college 学院
     * @param major 专业
     * @param className 班级
     * @return 符合条件的学生数量
     */
    Integer findStudentsCount(
            @Param("studentId") Long studentId,
            @Param("studentName") String studentName,
            @Param("studentNo") String studentNo,
            @Param("college") String college,
            @Param("major") String major,
            @Param("className") String className
    );
    
    /**
     * 根据用户ID获取学生信息
     *
     * @param userId 用户ID
     * @return 学生信息
     */
    Student findStudentByUserId(@Param("userId") Long userId);
    
    /**
     * 根据学生ID获取学生信息
     *
     * @param studentId 学生ID
     * @return 学生信息
     */
    Student findStudentById(@Param("studentId") Long studentId);
}
